package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author: jicj
 * @date: 2023/7/27
 * @description: PGT实体类
 * @version: 1.0
 */
@Data
public class HcMainOrder extends BaseEntity {

    private static final long serialVersionUID = -7739326277231124754L;

    private Integer id;
    private String orderType;////订单类型 1：下单 2：送检单 3：医疗开单 4:肿瘤订单 5:银联订单 6:联合订单 7市场活动 8新肿瘤订单 9互创API订单

    private String ylPay;   //银联支付标识

    private Long deptId;

    private String hospitalName;   //医院名称

    @Excel(name = "所属医院")
    private String deptName;

    private String isSync;

    private String organization;

    private String openId;

    @Excel(name = "病历号")
    private String sampleCaseId;

    private String barCode;//条形码


    @Excel(name = "送检总价")
    private BigDecimal wholeAmount;   //送检总价
    @Excel(name = "交易流水号")
    private String paytradeId;        //交易流水号
    @Excel(name = "银联支付订单号")
    private String ylorderNumber;     //银联支付订单号

    @Excel(name = "支付宝银联支付订单号")
    private String zfbYlorderNumber;

    @Excel(name = "受检者姓名")
    private String patientName;

    //    @Excel(name = "受检者电话")
    private String patientPhone;

    @Excel(name = "受检者年龄")
    private Integer patientAge;

    @Excel(name = "受检者性别")
    private String patientSex;

    private String patientKaryotype;//受检人核型
    private String patientGene;//受检人基因及突变位点

    private String patientCardId; //受检人身份证号

    @Excel(name = "配偶姓名")
    private String otherName;

    //    @Excel(name = "配偶电话")
    private String otherPhone;

    @Excel(name = "配偶年龄")
    private Integer otherAge;

    @Excel(name = "配偶性别")
    private String otherSex;

    private String otherKaryotype;//配偶核型
    private String otherGene;//配偶基因及突变位点

    @Excel(name = "付款人与受检者关系", dictType = "m_pay_patient")
    private String payRelationship;

    private Long doctor;


    private String isPublic;//结算方式
    private String num;//计价数量
    private BigDecimal price;//单价

    private String submissionCode;//送检码

    //    @Excel(name = "送检医生")
    private String contactName;

    //    @Excel(name = "检测类型", dictType = "m_test_type")
    private String testType;

    //    @Excel(name = "检测对象", dictType = "m_test_user")
    private String testUser;

    @Excel(name = "临床诊断")
    private String clinicalRemark;

    private String terminalNo;

    private String qrUrl;

    private String delFlag;

    private String products;


    private String reportStatus;

    private String signUrl;

    @Excel(name = "实名验证")
    private String check;

    private String payName;

    private BigDecimal payAmount;

    //参数
    private String productId;
    private String itemName;
    private String payStatus;
    private String reportSchedule;
    private String crmStatus;
    private String eggStatus;
    private String isDownload;
    private String tradeId;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date payDate;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date expectDate;
    private Date reportDate;//报告日期

    private String receiveReportAddress;//接收报告地址

    private String reportUrl;//报告地址





    private String address;
    private String unStart;
    private String overStatus;

    private String itemType;//项目类别
    private String checkItem;//检测项目
    private String sampleType;//样本类型
    private String adaptStatus;//适应症
    private String adaptStatusOther;//其他适应症
    private String mailAddress;//邮箱地址

    private String clinicType;//临床指征
    private String clinicTypeOther;//其他临床指征
    private String transplant;//移植手术
    private String transplantTime;//移植手术时间
    private String blood;//异体输血
    private String bloodTime;//异体输血时间
    private String cell;//细胞治疗
    private String cellTime;//细胞治疗时间
    private String otherType;//既往病史和用药史类型

    private String medicalHistory;//其他病史
    private String medicalHistoryOther;//其他病史其他
    private String antibiotic;//三个月内是否使用抗生素
    private String antibioticMain;//抗生素有效成分
    private String antibioticNum;//抗生素有效成分剂量
    private String antibioticLong;//抗生素用多久
    private String antibioticTime;//抗生素用具体时间日期
    private String antibioticAllergy;//是否对任何抗生素过敏
    private String antibioticAllergyType;//抗生素过敏种类

    private String lcjcWeek;//孕周
    private String lcjcNum;//单胎双胎

    private String checkCycle;//周期选择
    private String hormone;//激素替代周期P
    private String period;//自然周期LH
    private String ovulateP;//排(P)
    private String progesteroneTime;//首次使用孕酮时间
    private String progesteroneMol;//孕酮浓度
    private String pcheckTime;//检测时间点
    private String lhhighTime;//LH峰日或HCG扳机时间
    private String plTime;//排卵时间
    private String receiveSampleType;//采样方式
    private String receiveSampleTypeOther;//采样方式其他
    private String nmThickness;//内膜厚度
    private String thisCycle;//本周期内
    private String thisCycleOther;//本周期内其他

    private Date sampleDate;//样本采样时间
    private Date otherTestDate;//其他样本采样时间

    // 样本信息
    private List<HcPtInfo> sampleInfo;

    // 样本结果信息
    private List<HcPtInfoResult> sampleResult;

    private String doctorSign;//医生签名图片链接

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date doctorSigndate;//医生签名时间


    private String adaption;//送检单适应症
    private String clinic;//送检单临床指征
    private String checkItemName;//送检单检测项目名称
    private String doctorName;//送检单送检医生姓名

    private String discountCode;//优惠券码

    private String schdCode;//市场活动编码

    private BigDecimal refundAmount;  //退款金额
    private String ylpayType;         //银联支付方式，Y为C扫B

    private String ylrefundNumber;    //银联退款订单号
    private String refundRemarks;     //退款描述
    private String refundStatus;      //退款状态

    private String sendZlorder;    //新肿瘤小程序推送订单flag，N标识不推送

    private String agent;   //代理商

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date orderDate;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date moneyDate;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date refundDate;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date receiveDate;

    private String updatePhone;

    private Long zlUserId;

    private String attribute;//送检项目

    private String activityCode;//送检项目的物料编号


    private int embryo; //胚胎个数

    private String orderRandomId; //小程序订单随机数字校验订单是否重复提交

    private String ylorderType;  //生成订单类型选择什么支付（zfb,wx）

}
